#ifndef SCROLLBAR_H_
#define SCROLLBAR_H_

#include "SDL2/SDL.h"
#include "SDL2/SDL_image.h"
#include <vector>
#include <list>
#include <string>
#include "../modelo/Elemento.h"
#include "../parser/ElementoDisponibleJugador.h"

using namespace std;

class Scrollbar {
public:
	static const int cantUnidadesLogicasAncho;
	static const int cantUnidadesLogicasAlto;

	Scrollbar(list<pair<string, string> >* listaParesElementos);
	virtual ~Scrollbar();
	int dibujar(SDL_Renderer* renderer, double iDibX, double iDibY, double wDib,
			double hDib);
	vector<int>* getPosicionesYElementos();
	list<pair<string, string> >* getListaElementosDisponibles();
	int getLimiteInf();
	int getLimiteSup();
	void setLimiteInf(int);
	void setLimiteSup(int);
	Elemento* devolverElementosEnXeY(int xClick, int yClick);
	Elemento* devolverElementosEnXeY(int, int,list<ElementoDisponibleJugador*>*,list<Elemento*>*,int);

	int xFlechaAbajo, xFlechaArriba, yFlechaAbajo, yFlechaArriba, anchoFlechas,
			altoFlechas, anchoElementos, altoElementos, xElementos;

private:
	int limiteInf, limiteSup;
	list<pair<string, string> >* listaElementosDisponibles;
	list<pair<string, SDL_Texture*> >* listaElementosDisponiblesTextures;

	vector<int>* posicionesYElementos;
	SDL_Texture *texturaFondo;

	list<pair<string, SDL_Texture*> >* generarTexturesElementosDisponibles(
			SDL_Renderer* renderer,
			list<pair<string, string> >* listaElementosDisponibles);
};

#endif /* SCROLLBAR_H_ */
